home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR06 / UU162B.ZIP / UUDEVKIT.TXT < prev    next >
Text File  |  1993-09-11  |  43KB  |  1,071 lines

  1. Ultimate Universe Third Party Development Kit for 1.62       Sept 11, 1993
  2. ======================================================
  3. Ultimate Universe Copyright (C) 1993, TopherSoft Engineering
  4.  
  5.  
  6. I have had a lot of fun over the years developing Ultimate Universe. And a
  7. lot of people have contributed a lot of very good ideas and suggestions to
  8. making this an enjoyable program.
  9.  
  10. With that in mind I am releasing the file structures to the various game
  11. files in the hopes that some person or persons may wish to create add ons
  12. in the form of Additional Daily Suppliments or Editors or what not.
  13.  
  14. I am also pretty easy to reach by phone and don't mind answering questions.
  15. My number is 508-693-7396. This number is a Searchlight BBS running at 14400
  16. bps.
  17.  
  18. All information herein applies to version 1.62.
  19.  
  20. Ultimate Universe is written in BC++ 3.1 using only the C aspect of the
  21. compiler. The file formats will be displayed as C structures.
  22.  
  23. This text file contains:
  24.  
  25.       The Structures for GALAXY.UU, LINK.UU, PORT.UU, PLANET.UU,
  26.                  SPY.UU, TALLY.UU, CUBE.UU, DEVICE.UU & SHIP.UU.
  27.       A routine for staying compatable with FILE.DIR.
  28.       A routine for accessing CONFIG.UU and what it means.
  29.           Details on Ultimate Universe Interactive (UUI) activation.
  30.  
  31.  
  32. ==============================================================================
  33. /***************
  34.  *
  35.  * GALAXY.UU
  36.  *
  37.  ***************/
  38.  
  39. The Galaxy File contains most of the information about things contained in
  40. the galaxy. It contains one record for each sector of the universe. It also
  41. contains an opening zeroth sector record which contains the following data:
  42.  
  43.       Record Zero:
  44.       GALAXY.PORTER       : Contains the Sector the Ultimate Unifier is in.
  45.       GALAXY.WARP_SHIELD  : The Age of the Universe in Days.
  46.       GALAXY.ORM          : The Current Maximum Number of Sectors.
  47.  
  48. On additional records each sector is it's own record number.
  49.  
  50. Galaxy's structure is as follows:
  51.  
  52. typedef struct
  53.     begin
  54.        int   SECTOR;        : The Sector Number (and Record Number)
  55.        LOBJ  FIGHT;         : NUM is the number of Attack Drones
  56.                 : OWN is the owner's record number
  57.                       if PRG is 2 team's record number
  58.                 : PRG the programming mode
  59.        LOBJ  MINE;          : NUM is the number of Sector Mines
  60.                 : OWN is the owner's record number
  61.                       if PRG is 2 team's record number
  62.                 : PRG the programming mode
  63.        long  PORT;          : The file offset in the PORT.UU file
  64.                   for the port in this sector. Zero if none.
  65.        long  PLANET;        : The file offset in the PLANET.UU file
  66.                   for the planet in this sector. Zero if none.
  67.        char  PLANET_ID;     : owner's record number.
  68.                 : Set to 50 for independent
  69.                 : Set to 53-55 for Meanderer thru Destroyer.
  70.        char  REPLICATOR;    : Mine Replicator. Mine Count is increased
  71.                   by MINE.NUM/REPLICATOR.
  72.        int   PORTER;        : Sector Destination of Teleport Satellite
  73.        long  PORTER_CLOAK;  : Cloaking Energy of Teleport Satellite
  74.        int   WARP_SHIELD;   : Ergs of Warp Shielding
  75.        char  DAMPER;        : Owner Id of Sector Damper
  76.        char  LAST_SHIP;     : Owner Id of Last Ship in Sector
  77.        int   ORM;           : ORM Link Sector Number
  78.        char  BLACKHOLE;     : 1 = Holographic Black Hole
  79.                 : 2 = Wandering Black Hole
  80.                 : 3 = Man made Black Hole
  81.        char  CABAL_REPORT;  : Whether the Cabal in this Sector have been
  82.                   reported.
  83.        char  DECOY;         : Ship ID of Holographic Ship Decoy
  84.        long  DECOY2;        : File offset for Holographic Planet Decoy
  85.        long  DECOY_FIGHT;   : Drone display for Holographic Ship Decoy
  86.        char  MESSAGE_BEACON;: 1 = yes there is a message for this sector.
  87.        char  SPY_WARD;      : Number of Spy Wards.
  88.        char  HOMING_TRAP;   : If set to 127 an open trap is waiting to
  89.                   grab a Ship ID.
  90.                   If set to 0 no homing trap.
  91.                   Else it is set to a Ship ID.
  92.        int   PLATFORM;      : Number of Platform Device Bay Missiles.
  93.        char  ASNARE;        : Ship Id of Autopilot Snare Owner
  94.        char  TRIPWIRE;      : Ship Id of Passage Tripwire Owner.
  95.        char  FLASHWIRE;     : Ship Id of Flashwire Owner.
  96.        int   REFLECT;       : Sector to Display Sector As.
  97.                   (See Sector Reflector)
  98.        char  TOLLSTATION;   : Ship Id of owner of Tollstation.
  99.        long  TOLLFEE;       : Amount to Charge for safe passage.
  100.        long  TOLLCOFFER;    : Total Amount Currently Collected.
  101.        char  TOLLTYPE;      : Type of Tollstation.
  102.        char  NAGATOR;       : Ship Id of Owner of Overspace Navigation
  103.                   Nagator
  104.        char  POPPER;        : Ship Id of owner of Sector Popper.
  105.        char  SETTINGS;      : obsolete, not used.
  106.        char  LINKSUPPRESSER;: Ship Id of owner of Warp Link Suppressor.
  107.        char  DELACOOS;      : Ship Id of owner of Delacoos Drive Disruptor.
  108.        char  MADNESS;       : Level of Space Madness Virus Present.
  109.        char  EXPLODE_DECOY;    : Id Explosive Decoy is Copying
  110.                      Uses DECOY_FIGHT for number of drones.
  111.        char  MINE_LAUNCHER;    : Mines/MINE_LAUNCHER are launched into
  112.                      another Sector during Event.
  113.        int   MINE_DESTINATION; : This is the Sector the Mines are Launched
  114.                      to. If Zero destination is random.
  115.        char  DAMPER_TRIPWIRE;  : Id of Owner of Tripwire
  116.        int   HYPER_THIEF;      : Cube Number of Hyper Thief
  117.        char  HYPERSWAP_TRIGGER;: Owner ID of Hyperswap Trigger
  118.        char  TOLLTEAM;         : 1 = team tollbooth, zero otherwise.
  119.        char  SNITCH;           : Ship ID Snitch is logged on.
  120.        char  SNITCH_LIMITED;   : 1 if Limited, zero otherwise.
  121.        char  DIM_CATAPULT;     : Not yet used.
  122.        char  HOLE_FIELD;       : Strength of Black Hole Deflector Field
  123.            char  PICTURE;          : State of ANSI picture add on displayer
  124.                                    // bit 0 - Sector Picture
  125.                                    // bit 1 - Scan   Picture
  126.                                    // bit 2 - Port   Picture
  127.                                    // bit 3 - Planet picture
  128.            char  PICTURE;
  129.        char  misc1;
  130.        long  misc2;
  131.        float misc3;
  132.     end FILE1;
  133.  
  134. typedef struct
  135.     begin
  136.        long NUM;
  137.        char OWN;
  138.        char PRG;
  139.     end LOBJ;
  140.  
  141.  
  142. ==============================================================================
  143. /****************
  144.  *
  145.  *  LINK.UU
  146.  *
  147.  ****************/
  148.  
  149. The Galaxya file simply contains the eight potential warp links that each
  150. sector has. A value of zero indicates no warp link. A sector number is the
  151. sector number that this sector is warp linked to. A negative value is a
  152. phantom link indicating that a sector (the absolute value of the that number)
  153. used to be connected to that sector.
  154.  
  155. LINK.UU's structure is as follows:
  156.  
  157.  
  158. typedef struct
  159.     begin
  160.        int LINK[8];
  161.     end FILE1A;
  162.  
  163.  
  164.  
  165.  
  166.  
  167. ==============================================================================
  168.  
  169. /***************
  170.  *                      
  171.  *  PORT.UU
  172.  *
  173.  ***************/
  174.  
  175. The Port File contains information about the port in a sector.
  176. The first record is a dummy blank record and the second record is the
  177. Procurator. If there is a port in a sector the field GALAXY.PORT will
  178. contain the offset to the port record, such that:
  179.         "fseek(portstream, GALAXY.PORT, 0)"
  180. will position the record pointer at the the start of the port record.
  181. If GALAXY.PORT is zero then no port exists.
  182.  
  183. The structure of the port file is as follows:
  184.  
  185. typedef struct
  186.     begin
  187.     char  NAME[30];   : The name of the port.
  188.     char  TYPE;       : The type of the port 
  189.                 1  - sells Ore, 2 - Organics, etc.
  190.                 11 - Sol, 12 - Mars, etc.
  191.                 21 - Procurator.
  192.     long  TRADE[5];   : The number of units of cargo available for 
  193.                 buying or selling per type of cargo.
  194.     float RATES[5];   : The current rate for one unit of cargo per type.
  195.     char  SELL[5];    : Obsolete, no longer in use.
  196.     long  SWAP;       : Used for Procurator Movement.
  197.     int   misc1;      : for future use.
  198.     char  MADNESS;    : Level of Space Madness Virus Present.
  199.     long  COFFER;     : Not used yet (for franchise)
  200.     long  misc2;
  201.     long  misc3;
  202.     char  misc4;
  203.     float misc5;
  204.     end FILE6;
  205.  
  206. =============================================================================
  207. /***************
  208.  *                           1 = Wanderer
  209.  *  PLANET.UU                2 = Watcher
  210.  *                           3 = Destroyer
  211.  ***************/
  212.  
  213. The Planet File contains information about the planet in a sector.
  214. The first record is a dummy blank record. The first thru third records
  215. contain the Taakian Wandering planets (Record 1 = Meanderer, 2 = Watcher,
  216. 3 = Destroyer).
  217. If there is a planet in a sector the field GALAXY.PLANET will contain the
  218. offset to the planet record, such that:
  219.         "fseek(planetstream, GALAXY.PLANET, 0)"
  220. will position the record pointer at the the start of the planet record.
  221. If GALAXY.PLANET is zero then no planet exists.
  222. There is no way to trace from the Planet file what sector the planet is in.
  223.  
  224. The structure of the planet file is as follows:
  225.  
  226.  
  227. typedef struct
  228.     begin
  229.     char  NAME[30];       : The Name of the Planet
  230.     char  SETTINGS;       : Each bit has meaning
  231.                   :  bit 0 on = Planetary Defenses on. 
  232.                   :  bit 1 on = Team Member may land.
  233.                   :  bit 2 on = Devices 1st Defense Strategy
  234.                   :  bit 3 on = Shuttle Warp Shielding to Surface.
  235.                   :  bit 4 on = Planet infected by Organics virus.
  236.                   :  bit 5 on = Major Cabal Planet
  237.                               :  bit 6 on = Laser Enabled
  238.     long  CARGO[12];      : Amount of cargo per catagory.
  239.     long  PRODUCTION[12]; : Amount of production per catagory.
  240.     int   DEVICE;         : Device ID of Planetary Device.
  241.     int   DEVICE_VAR;     : Variable 1 for Planetary Device.
  242.     int   DEVICE_VAR2;    : Variable 2 for Planetary Device.
  243.     int   HYPERSECTOR;    : Sector Planet will return to from Hyper 
  244.                 storage.
  245.     char  HYPERID;        : Hyper Storage Refernce Number.
  246.     char  MADNESS;        : Level of Space Madness Virus Prsent.
  247.     char  TYPE;           : Planet Type. 0 = Breeder. 1 = Warrior.
  248.     int   misc2;          : for future use.
  249.     long  misc3;
  250.     long  misc4;
  251.     long  misc5;
  252.     long  misc6;
  253.     end FILE7;
  254.  
  255.  
  256. ==============================================================================
  257. DEVICE.UU
  258. typedef struct
  259.     begin
  260.        char  NAME[34];    : Name of Device
  261.        long  COST;        : Price of Device
  262.        int   ID;          : Device Number
  263.        int   VAR;         : Device Variable 1
  264.        int   VAR2;        : Device Variable 2
  265.        int   USE;         : Is this a Usable Device? 0 = No, 1 = Yes.
  266.        unsigned char      : Amounts Available for Purchase by Dimension.
  267.          AMT[10];
  268.     end FILE3;
  269.  
  270.  
  271. ==============================================================================
  272. SPY.UU
  273.  
  274. The Spy file contains scant information about the detection of Attack Drones,
  275. Sector Mines and Planets in a given sector.
  276. Just like the GALAXY file there is one record for each sector and a dummy
  277. zeroth record.
  278.  
  279. If any field is non zero it means that that object has been located by the 
  280. Spies.
  281.  
  282. The spy structure is as follows:
  283.  
  284. typedef struct
  285.     begin
  286.        char  FIGHT;   : Owner ID of Attack Drones (+56 for Team Ownership).
  287.        char  MINE;    : Owner ID of Sector Mines  (+56 for Team Ownership).
  288.        char  PLANET;  : Owner ID of Planet.
  289.     end SPYFORM;
  290.  
  291. ==============================================================================
  292. CUBE.UU
  293.  
  294. The Cube file contains the information of the contents of the Hyper Cubes &
  295. Swaps. Record zero is a dummy record, records 1 thru MAXPLAYER are the Team
  296. Cubes and any records after that are pointed to by record numbers stored in
  297. varaible 1 of the Hyperdevice.
  298. Number of Device Bays in the cube is held in the Hyper Device not the file.
  299.  
  300. The structure of the Cube File is as follows:
  301.  
  302. typedef struct
  303.    begin
  304.    int  OWNER;      : Owner ID of Hyper Cube.
  305.             : Not really used may be incorrect in some situations.
  306.    int  DEVICE[20]; : Device ID per bay.
  307.    int  VAR[20];    : Device variable 1 per bay.
  308.    int  VAR2[20];   : Device variable 2 per bay.
  309.    char NAME[20];   : Name of the Cube (For HyperSwaps).
  310.    end CUBEFORM;
  311.  
  312. ==============================================================================
  313. The Tally File is sort of a nothing file but with a lot of functions it's use
  314. can speed up applications. This file is simply a one character mark indicating
  315. whether there are Attack Drones, Sector Mines or Planets in a Sector.
  316.  
  317. This file contains a dummy zeroth record and then one character for each 
  318. sector. 
  319.  
  320. typedef struct
  321.    begin
  322.    char MARK;     : If Mark equals 1 there are Attack Drones or Sector Mines
  323.             or a Planet in this sector.
  324.    end TALLYFORM;
  325.  
  326. ==============================================================================
  327. /**********************
  328.  *                    *
  329.  *  SHIP.UU           *
  330.  *                    *
  331.  **********************/
  332.  
  333. As it's name implies the ship file contains all the information about the
  334. condition and components of a ship. Like the GALAXY file this file contains
  335. a dummy zeroth record.
  336. In the zeroth record:
  337.    SHIP.TODAY contains the maximum number of players (MAXPLAYER).
  338.    SHIP.SDAMAGE contains the file format version number.
  339.         To date that is '0'   for pre-140 file format and
  340.                 '140' for version 140 file format.
  341.                 '160' for version 160 file format.
  342. Three extra records exist at the end of the file.
  343. These are mostly used to house the names of the computer antagonists.
  344. Record Number MAXPLAYER:   contains the Federation.
  345. Record Number MAXPLAYER+1: contains the Cabal.
  346. Record Number MAXPLAYER+2: contains the Anti-Establings.
  347. None of the information below (except Name) applies to those records.
  348.  
  349. The structure of the Ship file is as follows:
  350.  
  351. typedef struct
  352.   begin
  353.   char  NAME[38];         : The name of the ship.
  354.   char  TODAY;            : Number of sessions used that day.
  355.   int   SECTOR;           : The sector the ship is in.
  356.               : Set to Zero indictates a dead ship.
  357.   char  ID;               : Owner ID and record number.
  358.   char  TEAM;             : Team ID ship belongs to. Zero means no team.
  359.   int   DAYS;             : Number of days the ship has survived.
  360.   int   CARGO[5];         : Amount of cargo units per type
  361.   long  ITEM[13];         : Amounts of supplies per item.
  362.               : See below for a list of items.
  363.   int   DEVICE[32];       : Device ID per device bay.
  364.   int   DEVICE_VAR[32];   : Device Variable 1 per device bay.
  365.   int   DEVICE_VAR2[32];  : Device Variable 2 per device bay.
  366.   int   BOARDNO;          : Registration Number of Game ship was created under.
  367.               : This is zero for unregistered versions.
  368.               : May vary from Game ID number if ship is Imported.
  369.   int   COUNT;            : A unique number when combined with BOARDNO that
  370.               : can differentate that ship from all other ships
  371.               : anywhere.
  372.   char  PLAYER[25];       : The Players login name. 
  373.               : Set to NULL indictates a free area to create a
  374.               : new ship.
  375.   char  BAYS;             : The number of device bays.
  376.   long  SECONDS;          : Number of seconds remaining that day.
  377.   char  INACTIVE;         : Number of days on inactivity.
  378.   char  DIMENSION;        : Dimension the Ship is currently in.
  379.   long  FINES;            : Amount of Federation Fines accrued.
  380.   long  DEBT;             : Amount of Federation Debt accrued.
  381.   int   SDAMAGE;          : Number of seconds of sensor damage.
  382.   long  MINES_KILLED;     : Number of Cabal Sector Mines destroyed.
  383.   long  CABAL_KILLED;     : Number of Cabal Attack Drones destroyed.
  384.   char  FED_HOSTILE;      : Set to non zero if ship has been declared an 
  385.               : enemy of the Federation.
  386.   char  COMPUTER;         : Set to non zero if ship's computer is damaged.
  387.   char  MADNESS;          : Indicts Level of Space Madness Virus Present.
  388.   int   IMPORT;           : Importation Copy Number;
  389.   char  EXPERT_LEVEL;     : Toggle (0 or 1) sets expert display mode.
  390.   long  FIRST_DEVICE;     : The maximum amount for free device at port 6.
  391.               : Set to zero after use.
  392.   long  SESSION;          : The amount seconds left in the current session.
  393.   char  ENHANCEMENT;      : Number of Ship Enhancement. A=1, B=2, etc.
  394.   int   TO_UPS;           : Number of Device ordered thru U.P.S.
  395.   int   SENSORS[8];       : Device Numbers of Devices in Forward Sensor Array
  396.   char  FEDBAYS;          : Number of Bays the Federation Owes You
  397.   char  PRACTICE;         : Number of Times Ship Died In Practice Mode
  398.   int   misc1;
  399.   long  misc2;
  400.   long  misc3;
  401.   long  misc4;
  402.   long  misc5;
  403.   end FILE2;
  404.  
  405. Following is a break down of the Cargo and Item arrays:
  406.  
  407.  
  408.  CARGO[0]  = ore
  409.  CARGO[1]  = organics
  410.  CARGO[2]  = equipment
  411.  CARGO[3]  = power
  412.  CARGO[4]  = water
  413.        
  414.  ITEM[0]   = credits
  415.  ITEM[1]   = fuel units
  416.  ITEM[2]   = cargo holds
  417.  ITEM[3]   = attack drones
  418.  ITEM[4]   = sector mines
  419.  ITEM[5]   = cloaking energy
  420.  ITEM[6]   = anticloaking energy
  421.  ITEM[7]   = plasma warps
  422.  ITEM[8]   = gate warps
  423.  ITEM[9]   = flash warps
  424.  ITEM[10]  = genesis devices
  425.  ITEM[11]  = planetary probes
  426.  ITEM[12]  = for future use
  427.  
  428.  
  429. ==============================================================================
  430. File.DIR contains the filenames and paths to most of the Ultimate Universe
  431. files. While it is rare that any sysop or home user changes these it is best
  432. to make sure that any third party application has respect for FILE.DIR.
  433.  
  434. Following is a routine showing how FILE.DIR is used:
  435. ─────────────────────────────────────────────────────────────────────────────
  436. extern char pfn[100];
  437. extern int  current_universe;
  438. void get_path(int fd)
  439. {
  440. FILE *stream;
  441. int fx = 0;
  442. static char fname[32][13], fdir[32][60];
  443. if(!fd)
  444.    {
  445.    if((stream=_fsopen("FILE.DIR","rt",SH_DENYNO))==NULL)
  446.       {
  447.       perror("Can't Locate FILE.DIR");
  448.       exit(22);
  449.       }
  450.    while(TRUE)
  451.       {
  452.       if((fscanf(stream,"%s %s",fname[fx] ,fdir[fx]))==EOF) break;
  453.       if(fname[fx++][0]=='~') break;
  454.       }
  455.    fclose(stream);
  456.    return;
  457.    }
  458. strcpy(pfn, fdir[fd]);
  459. strcat(pfn, fname[fd]);
  460. if(fd<=Warzine)  // See Defines below
  461.    {
  462.    char conv[12] = {"U123456789"};
  463.    for(fx=0;pfn[fx]!=NULL;fx++) ;
  464.    pfn[fx] = conv[current_universe];
  465.    pfn[++fx] = NULL;
  466.    }
  467. {
  468. ─────────────────────────────────────────────────────────────────────────────
  469.  
  470. get_path should be initialized with "get_path(0)" once before the routine is
  471. initially used. 
  472.  
  473. Each file has a unique "fd" which can be defines as follows:
  474.  
  475. #define  Bank        1
  476. #define  Config      2
  477. #define  Flea        3
  478. #define  Galaxy      4
  479. #define  Hitlist     5
  480. #define  Link        6
  481. #define  Mbeacon     7
  482. #define  Newpaper    8
  483. #define  Planet      9
  484. #define  Port        10
  485. #define  Rank        11
  486. #define  Spy         12
  487. #define  Tally       13
  488. #define  UPS         14
  489. #define  Warzine     15
  490. #define  Bbs         16
  491. #define  Count       17
  492. #define  Cube        18
  493. #define  Device      19
  494. #define  History     20
  495. #define  Id          21
  496. #define  ImportCheck 22
  497. #define  Macro       23
  498. #define  Portname    24
  499. #define  Radio       25
  500. #define  Ship        26
  501. #define  Team        27
  502. #define  What        28
  503. #define  Words       29
  504. #define  WordsIndex  30
  505.  
  506.  
  507. So a call of "get_path(Ship)" would leave string array "pfn" containing the
  508. full path and file name leading to the Ship file.
  509. The name or location of the file should never be assumed.
  510.  
  511. current_universe points to the active dimension.
  512. The active dimension is important to selecting the proper file.
  513. Remember that Shareware versions deal strictly with Dimension 0.
  514. The presence of a dimension can be determined by checking for the existance of
  515. CONFIG.Ux where 'x' is the number of the dimension (or 'U' if dimension 0).
  516.  
  517. ==============================================================================
  518. CONFIG.UU contains all the variables that can be configured by CONFIG.EXE.
  519.  
  520. The format of the Configuration file is as follows:
  521.  
  522. typedef struct
  523.     begin
  524.        char  VAR[30]; : an identifier string for the variable.
  525.        long  VAL;     : the contents of the variable.
  526.     end CONFORM;
  527.  
  528. There are well over 100 variables and I will lay them out below.
  529.  
  530. If you wish to add a variable to CONFIG for use in your application, let me
  531. know and I may consider adding it to CONFIG.EXE.
  532.  
  533. A routine for reading a Config variable would look like this:
  534.  
  535.     long get_config(char *SEARCH)
  536.     begin
  537.     int confg;
  538.     CONFORM CONFIG;
  539.     long VALUE = 0L;
  540.     get_path(Config);
  541.     if((confg=open(pfn,O_RDWR|O_BINARY,S_IWRITE|S_IREAD))==-1) filerror(pfn,1);
  542.     while(VALUE == 0L)
  543.        begin
  544.        if((read(confg, &CONFIG, sizeof(CONFIG)))<1) break;
  545.        if(strcmp(CONFIG.VAR,SEARCH)==0)
  546.       begin
  547.       VALUE = CONFIG.VAL;
  548.       break;
  549.       end
  550.        end
  551.     close(confg);
  552.     return(VALUE);
  553.     end
  554.  
  555.  
  556. *┌───────────────────────────────────────────────────────────────────────────┐
  557. *│ Version & RegNum will be filled in by the game itself.                    │
  558. *└───────────────────────────────────────────────────────────────────────────┘
  559. <VERSION>             160   * The version number
  560.  
  561. <COLOR>                 1   * 0 = B&W,         1 = Color
  562. <ANSI>                  1   * 0 = Remote Viewing Disabled
  563.                 * 1 = Remote Viewing Player Selectable
  564.                 * 2 = Remote Viewing Enabled
  565. <MINUTES>              75   * Minutes Player is Allowed to Play
  566.                 * With BBS set above 0 sets Maximum Playing Time
  567.                 * to the Lower of MINUTES and Time Left on the
  568.                 * Board.
  569. <VIDEO>                 0   * Covers the Method of Screen Writing
  570.                 * 0 = Bios Calls,  1 = Direct to Ram
  571.                 * Should be 0 for most BBSs or less compatible
  572.                 * computers.
  573. <MODEMSIM>              0   * When in Local Mode, MODEMSIM > 1 causes a
  574.                 * delay in output simulating the delay caused
  575.                 * to players. Thus the SYSOP is not granted
  576.                 * an unfair advantage. The greater the number
  577.                 * the greater the delay.
  578. <LOG>                   0   *
  579. <SOUND>               255   * Controls the ticking associated with the
  580.                 * moving of the ship
  581.                 * 0 = Disable
  582.                 * otherwise the frequency of the pitch.
  583. *┌───────────────────────────────────────────────────────────────────────────┐
  584. *│ MAXSECTOR is The number of sectors in the Galaxy                          │
  585. *│ If UUD or the Autopilot runs too slow on your system reduce MAXSECTOR.    │
  586. *│ Memory and Hard disk space are also considerations on this value.         │
  587. *│ MAXSECTOR is only read when UUD RESET is run.                             │
  588. *│ Do not exceed 4000 or it WILL crash your system.                          │
  589. *└───────────────────────────────────────────────────────────────────────────┘
  590.  
  591. <MAXSECTOR>           2000
  592.  
  593. *─────────────────────────────────────────────────────────────────────────────
  594. * MAXPLAYER is The number of players that can play in a given campaign
  595. * Must not exceed 28
  596.  
  597. <MAXPLAYER>             28
  598.  
  599. *─────────────────────────────────────────────────────────────────────────────
  600. * The Colonization function allows expanstion of the Universe
  601. * TRUESECTOR sets the absolute total of sectors the universe might gain.
  602. * Maxsector + 100 is usually sufficient
  603.  
  604. <TRUESECTOR>          3400   * must not exceed 4000
  605.  
  606. *─────────────────────────────────────────────────────────────────────────────
  607. * PLAYS is the number of times per day a player may login
  608.  
  609. <PLAYS>                  5
  610.  
  611. *─────────────────────────────────────────────────────────────────────────────
  612. * INACTIVE is the number of days a player may not play before being removed
  613. * from the game.
  614.  
  615. <INACTIVE>              20
  616.  
  617. *─────────────────────────────────────────────────────────────────────────────
  618. * PORT.PROB sets the density of ports in the universe.
  619. * Setting it to 100 would that each sector had a 100% chance of having a port.
  620. * A Setting of 45 would give a 45% chance.
  621. * The setting should be atleast 1 and shouldn't exceed 99.
  622.  
  623. <PORT.PROB>             43
  624.  
  625. *─────────────────────────────────────────────────────────────────────────────
  626. * WARP.PROB must be a number from 1 to 8 (I would leave it four)
  627. * lowering this number causes less warps between sectors. Raising it causes
  628. * more and increases the chance for natural gate warps.
  629.  
  630. <WARP.PROB>             3     * must be from 1 to 8
  631.  
  632. *─────────────────────────────────────────────────────────────────────────────
  633. * SPY.PROB must be a number from 1 to MAXSECTOR
  634. * lowering this number increases the thoroughness of the spies.
  635. * MAXSECTOR/SPY.PROB is the number of sectors the spies check.
  636.  
  637. <SPY.PROB>            500
  638.  
  639. *─────────────────────────────────────────────────────────────────────────────
  640. * FED_CABAL sets the starting cargo of the Federation & Cabal planets.
  641. * the higher the number the tougher the Fed & Cabal at start.
  642. * Set too low and the players may take the game early on.
  643.  
  644. <HITLIST>              40     * between 2 to 99
  645. <FED_MOVE>         500000     * between 1000 to 10,000,000
  646. <FED_PLANETS>           4     * between 1 to 30
  647. <CABAL_PLANETS>         4     * between 1 to 30
  648. <FEDINIT>         1900000     * should be less than 99,000,000
  649. <CABALINIT>       1900000     * should be less than 99,000,000
  650.  
  651. *─────────────────────────────────────────────────────────────────────────────
  652. * REVERSE_LINK sets the odds of all warps being Plasma Warps as opposed to
  653. * Gate Warps. Do not set below 0 or over 100.
  654. *
  655. <REVERSE_LINK>         85
  656.  
  657. *┌───────────────────────────────────────────────────────────────────────────┐
  658. *│ The Variables RUSSIAN, JACKPOT, BLACKHOLE, LINK.DECAY & LOTTERY           │
  659. *│  are switches that control the inclusion of the random (vs stragic)       │
  660. *│  elements of the game.                                                    │
  661. *│ With these flag set off (0) and XDEVICE 490 added to the bottom of this   │
  662. *│  file most random elements of the will be removed.                        │
  663. *│  Device 490 is the pot luck suprise device.                               │
  664. *└───────────────────────────────────────────────────────────────────────────┘
  665. *RUSSIAN sets the number of days your ship must survive to be eligable to play
  666. *        Russian Roulette.
  667. *RUSSIAN if set to 0 disables Russian Roulette
  668. *RUSSIAN if set to -1 enables Russian Roulette at all times.
  669. *RUSSIAN if set to -2 requires debt to be paid before playing.
  670.  
  671. <RUSSIAN>              -2
  672.  
  673. *─────────────────────────────────────────────────────────────────────────────
  674. *JACKPOT if set to 0 disables Quantum Credits
  675. *JACKPOT if set to 1 allows Quantum Credits but only increments
  676. *         Jackpot when it is played.
  677. *JACKPOT if set to 2 allows Quantum Credits and increments Jackpot daily.
  678.  
  679. <JACKPOT>               2
  680.  
  681. *─────────────────────────────────────────────────────────────────────────────
  682. *BLACKHOLE if set to 0 disables wandering Taakian Blackhole feature
  683. * non zero setting activates it.
  684.  
  685. <BLACKHOLE>             2
  686.  
  687. *─────────────────────────────────────────────────────────────────────────────
  688. *WILDFIRE sets the Activity level of the FEDERATION, CABAL, ANTI war.
  689. *Setting WILDFIRE to 1 causes a very active war and dramatically increases
  690. *the time UUD takes to run after a few days.
  691. *Setting WILDFIRE to 0 sets normal war mode.
  692.  
  693. <WILDFIRE>              1
  694.  
  695. *─────────────────────────────────────────────────────────────────────────────
  696. *FINES set credit value for various fines.
  697. *
  698. <FINE.DRONE>          100
  699. <FINE.MINE>          2500
  700. <FINE.GENESIS>     100000
  701. <FINE.REPORT>         450
  702. <FINE.POPPER>       25000
  703. <FINE.HOLE>       5000000
  704.  
  705. *─────────────────────────────────────────────────────────────────────────────
  706. *LINK.DECAY sets the maximum number of warp links that may decay during UUD.
  707. *LINK.CREATE sets the maximum number of warps links that may appear during UUD.
  708. *a value of zero disables either function.
  709.  
  710. <LINK.CREATE>           42
  711. <LINK.DECAY>            35
  712.  
  713. *─────────────────────────────────────────────────────────────────────────────
  714. *LOTTERY if set to 0 disables the opening day lottery feature.
  715. * if set to 1 enables the lottery for the first logon of the day.
  716. * if set to 2 enables the lottery for the first 2 logons of the day.
  717. * etc.
  718.  
  719. <LOTTERY>               3
  720.  
  721. *─────────────────────────────────────────────────────────────────────────────
  722. *MADNESS sets age deferment for SPACE MADNESS
  723. *
  724. <MADNESS>               3
  725.  
  726. *┌───────────────────────────────────────────────────────────────────────────┐
  727. *│ START. Variables control the amounts that a ship contains when created.   │
  728. *│  Care should be taken that the value does not exceed the corresponding    │
  729. *│  LIMIT. variable.                                                         │
  730. *└───────────────────────────────────────────────────────────────────────────┘
  731.  
  732. <START.HOLDS>         500     * limit 32000
  733. <START.CREDIT>    4000000     * limit 2,000,000,000
  734. <START.FIGHTER>      1000     * limit 2,000,000,000
  735. <START.MINES>           0     * limit 1,000,000
  736. <START.CLOAK>           1     * limit 2,000,000,000
  737. <START.ACLOAK>          0     * limit 2,000,000,000
  738. <START.TURNS>         200     * limit 32000
  739. <START.WARP1>           0     * limit 32000
  740. <START.WARP2>           0     * limit 32000
  741. <START.WARP3>           5     * limit 32000
  742. <START.GENESIS>         1     * limit 32000
  743. <START.PPROBE>          1     * limit 32000
  744.  
  745. * the number of device bays
  746.  
  747. <START.BAY>            26     * limit 32
  748. <START.PORT6>      300000     * Maximum Cost of Free First Device at Port 6
  749.                   * limit LIMIT.CREDIT
  750. *─────────────────────────────────────────────────────────────────────────────
  751. * if START.DEVICE = device number (1-500) ship starts out with that device
  752. * if START.DEVICE = 0 ship starts out with no device
  753.  
  754. <START.DEVICE1>       251     * invalid device number will cause weirdness
  755. <START.DEVICE2>       490     * 490 IS A POT LUCK SURPRISE
  756. <START.DEVICE3>       240     * check ports 6 + 8 for other numbers to use
  757. <START.DEVICE4>         0     * run CONCOMP if you change this later
  758. <START.DEVICE5>         0
  759.  
  760. *┌───────────────────────────────────────────────────────────────────────────┐
  761. *│ LIMIT. Variables control the amounts that a ship can contain.             │
  762. *│  Care should be taken that the value is NOT less than the corresponding   │
  763. *│  START. variable.               (see above START.LIMITS)                  │
  764. *└───────────────────────────────────────────────────────────────────────────┘
  765.  
  766. <LIMITBAY>             32     * limit 32
  767. <LIMITHOLD>         60000     * limit 32760
  768. <LIMITTURN>           500     * limit 32000
  769. <LIMITCREDIT>  1000000000     * limit 2,000,000,000
  770. <LIMITFIGHTER> 2000000000     * limit 2,000,000,000
  771. <LIMITMINE>        500000     * limit 2,000,000,000
  772. <LIMITCLOAK>    100000000     * agrueable but I wouldn't pass 100000000
  773.                   * will get weird if multi-enhancers push
  774.                   * value past 2,000,000,000
  775. <LIMITACLOAK>   100000000     * ditto
  776. <LIMITWARP1>         4000     * limit 32000
  777. <LIMITWARP2>         4000     * limit 32000
  778. <LIMITWARP3>          200     * limit 32000
  779. <LIMITGENESIS>         25     * limit 32000
  780. <LIMITPPROBE>         100     * limit 32000
  781.  
  782. * LIMITWSHIELD sets the Maximum erg level for a Warp Shield
  783.  
  784. <LIMITWSHIELD>      30000     * limit 32000
  785.  
  786. *─────────────────────────────────────────────────────────────────────────────
  787. * PRO variables set the planet production rates
  788. *     lowering the values increases the daily production
  789. *     do not set the value to less than 1 or higher than 32000
  790. *     This is hard to explain so adjusting it by trial and error is best.
  791. *     You can change these any time and run CONCOMP if you dont like them.
  792.  
  793. <PRO.DRONE>            30     * attack drones
  794. <PRO.MINE>           7510     * sector mines
  795. <PRO.CLOAK>          1300     * cloaking energy
  796. <PRO.ACLOAK>         4700     * anticloaking energy
  797. <PRO.NULL>          16197     * warp shield nullifiers
  798. <PRO.SHIELD>         8983     * warp shield energy
  799. <PRO.FLASH>         14020     * flash warps
  800.  
  801. *─────────────────────────────────────────────────────────────────────────────
  802. * PRL variables set the maximum planet production rates
  803. *     avoid extremes
  804.  
  805. <PRL.CARGO>     200000000     * ORE, ORG etc.
  806. <PRL.DRONE>     200000000     * attack drones
  807. <PRL.MINE>          22000     * sector mines
  808. <PRL.CLOAK>       3500000     * cloaking energy
  809. <PRL.ACLOAK>      3500000     * anticloaking energy
  810. <PRL.NULL>          15000     * warp shield nullifiers
  811. <PRL.SHIELD>        15000     * warp shield energy
  812. <PRL.FLASH>            50     * flash warps
  813.  
  814. *┌───────────────────────────────────────────────────────────────────────────┐
  815. *│ The following variables set up the destructiveness of Sector Mines.       │
  816. *└───────────────────────────────────────────────────────────────────────────┘
  817. * MINE_DAMAGE_RANDOM is the random part of a sector mine blast
  818. * MINE_DAMAGE_BASE   is the fixed part of a sector mine blast
  819. * blast = (rand % MINE_DAMAGE_RANDOM)+MINE_DAMAGE_BASE
  820.  
  821. <MINE_DAMAGE_RANDOM> 2000     * limit 20000
  822. <MINE_DAMAGE_BASE>    500     * limit 20000
  823.  
  824. *┌───────────────────────────────────────────────────────────────────────────┐
  825. *│ MARS. variables set the initializing values for the Mars Port (Port 2)    │
  826. *└───────────────────────────────────────────────────────────────────────────┘
  827. * MARS.MAXBET sets the opening maximum bet at the Mars Port (Sector 2)
  828.  
  829. <MARS.MAXBET>      500000     * limit 1,000,000,000
  830.  
  831. * MARS.COFFER sets the coffer at the Mars Port
  832.  
  833. <MARS.COFFER>    30000000     * limit 1,000,000,000
  834.  
  835. *┌───────────────────────────────────────────────────────────────────────────┐
  836. *│ Newspaper sets the number of days the Galactic Newspaper will be kept     │
  837. *│ when UUD is run.                                                          │
  838. *└───────────────────────────────────────────────────────────────────────────┘
  839.  
  840. <NEWSPAPER>             3     * limit 99
  841.  
  842. *┌───────────────────────────────────────────────────────────────────────────┐
  843. *│ IMPORT and EXPORT set whether or not Importing and Exporting Ships is     │
  844. *│ allowable on in your universe.                                            │
  845. *│ These functions are only allowable on Registered versions and have no     │
  846. *│ effect on Shareware versions.                                             │
  847. *│                                                                           │
  848. *│ If IMPORT is set to 1 Importation of outside ships is enabled.            │
  849. *│ If EXPORT is set to 1 Exportation of Ships is enabled.                    │
  850. *│ A setting of 0 disables either function.                                  │
  851. *└───────────────────────────────────────────────────────────────────────────┘
  852.  
  853. <IMPORT>                1
  854. <EXPORT>                0
  855. <IMPSECTOR>             0
  856.  
  857. *┌───────────────────────────────────────────────────────────────────────────┐
  858. *│ XDEVICE causes the device number listed to be be outlawed in the game     │
  859. *│ multiple XDEVICES can be listed                                           │
  860. *│ This would be useful in two situations. Say that a device is causing      │
  861. *│ the Sysops board to crash. It is traced to device #108 (the number used   │
  862. *│ to purchase the device). The Sysop then sets up XDEVICE 108 and all is    │
  863. *│ well. Or, a group of players find that device number 450 makes the game   │
  864. *│ less exciting. After complaining to the Sysop, the Sysop agrees and       │
  865. *│ sets XDEVICE 450.                                                         │
  866. *└───────────────────────────────────────────────────────────────────────────┘
  867.  
  868. <XDEVICE0>               0
  869. <XDEVICE1>               0
  870. <XDEVICE2>               0
  871. <XDEVICE3>               0
  872. <XDEVICE4>               0
  873. <XDEVICE5>               0
  874. <XDEVICE6>               0 
  875. <XDEVICE7>               0 
  876. <XDEVICE8>               0 
  877. <XDEVICE9>               0 
  878. *─────────────────────────────────────────────────────────────────────────────
  879.  
  880. <END>                    0
  881.  
  882.  
  883.  
  884. Ultimate Universe Interactive (UUI)
  885. ==============================================================================
  886.  
  887. Starting in Ultimate Universe 1.60 I began to include data hooks for
  888. the creation of 3rd Party Terminal (Assist) programs.
  889.  
  890. Note: All codes that follow require that each keystroke be within 2 seconds
  891.       of each other otherwise control returns to the program.
  892.  
  893. UUI is enabled by send the program a '~|', to which it will respond with
  894. either a '!!' (UUI not yet enabled) or a '++' (UUI enabled).
  895.  
  896. The Enable command must then be followed by a UUI command which takes the
  897.     following form: '~~[xx' where xx is UUI COMMAND MODULE.
  898.     COMMAND MODULES are explained below.
  899.  
  900.  
  901. ----------------------------------------------------------------------------
  902. UUI Enable
  903.  
  904.  
  905. Initiate: ~|
  906. Responce: !!       - UUI not yet enabled (UUI is not enabled until the main
  907.                      comman prompt is first reached.)
  908.           ++       - UUI waiting for command
  909. Command : ~[xx     - Where xx is one of the following:
  910.                        E-, E+, DN, PN, PR, PT, SD, SE, SF, SI, ST, SU, VR.
  911.  
  912. ----------------------------------------------------------------------------
  913. DN (Device Name)
  914.  
  915. Send   : xxx  (where xxx is a 3 digit device number (ie. 066 = Spy Ward))
  916. Returns: 'Time Out' if more than 2 secs between degits of device number
  917.            or
  918.          Value of device number sent
  919.          Device Number (If invalid device number sent this will be 0)
  920.          Name of Device
  921.          Price of Device
  922.          Passive or Active Flag (1 = Active Device)
  923.          Number of Units available for Purchase in this Dimension.
  924.  
  925. ----------------------------------------------------------------------------
  926. E+ (Enable Interactive Data Displays)
  927. E- (Disable Interactive Data Displays)
  928.  
  929. Interactive Data Display is thus far:
  930.  
  931. Warp Link Display of scanned Warps in format:
  932.    !W dddd !L dddd dddd dddd ... dddd <cr>
  933. Port Data of scanned Sector in format:
  934.    !P dddd dd ddd.dd dddddddd ddd.dd dddddddd ddd.dd dddddddd ddd.dd dddddddd
  935.          ddd.dd dddddddd <cr>
  936.    (ddd is Sector Number, dd is port type,
  937.     ddd.dd is Rates for ore, org, etc.,
  938.     dddddddd is Amounts for Trading or ore, org, etc.)
  939. ----------------------------------------------------------------------------
  940. PN (PORT NAME)
  941.  
  942. Returns: PN
  943.          Port Type
  944.          Port Name
  945.          if ship has device 363 level of space madness is displayed here.
  946.          PN
  947.  
  948. If no Port is present returns: No Port
  949.  
  950. ----------------------------------------------------------------------------
  951. PR (PORT RATES)
  952.  
  953. Returns: PR
  954.          Port Type
  955.          Port Rate for Ore
  956.          Port Rate for Organics
  957.          Port Rate for Equipment
  958.          Port Rate for Power
  959.          Port Rate for Water
  960.          PR
  961.  
  962. If no Port is present returns: No Port
  963.  
  964. ----------------------------------------------------------------------------
  965. PT (PORT TRADING AMOUNTS)
  966.  
  967. Returns: PT
  968.          Port Type
  969.          Port Trading Amount for Ore
  970.          Port Trading Amount for Organics
  971.          Port Trading Amount for Equipment
  972.          Port Trading Amount for Power
  973.          Port Trading Amount for Water
  974.          PT
  975.  
  976. If no Port is present returns: No Port
  977.  
  978. ----------------------------------------------------------------------------
  979. SD (SHIP DEVICES)
  980.  
  981. Returns: SD
  982.          Number of Bays (N)
  983.          Device1 Device1-Variable1 Device1-Variable2
  984.          Device2 Device2-Variable1 Device2-Variable2
  985.          ...
  986.          DeviceN DeviceN-Variable1 DeviceN-Variable2
  987.          SD
  988.  
  989. ----------------------------------------------------------------------------
  990. SE (SHIP ENHANCEMENTS)
  991.  
  992. Returns: SE
  993.          The Enhancement section of the Inventory
  994.          SE
  995.  
  996. ----------------------------------------------------------------------------
  997. SF (SHIP FORWARD)
  998.  
  999. Returns: SF
  1000.          Units of Ore Cargo
  1001.          Units of Organic Cargo
  1002.          Units of Equipment Cargo
  1003.          Units of Power Cargo
  1004.          Units of Water Cargo
  1005.          Number of credits
  1006.          Amount of fuel
  1007.          Number of Cargo holds
  1008.          Number of Attack Drones
  1009.          Number of Sector Mines
  1010.          Number of Cloaking Ergs
  1011.          Number of Anti-Cloaking Ergs
  1012.          Number of Plasma Warps
  1013.          Number of Gate Warps
  1014.          Number of Flash Warps
  1015.          Number of Genesis Devices
  1016.          Number of Planetary probes
  1017.          Number for future use
  1018.          Current Federation Fines
  1019.          Federation Debt Due
  1020.          Number of Cabal Mines Destroyed
  1021.          Number of Cabal Drones Killed
  1022.          Device Number of Pending UPS shipment
  1023.          SF
  1024.  
  1025. ----------------------------------------------------------------------------
  1026. SI (SHIP INFORMATION)
  1027.  
  1028. Returns: SI
  1029.          Sector Ship is Currnetly In    ;If 0 Ship is Destroyed
  1030.          Current Dimension Number
  1031.          Ship Name
  1032.          Number of Seconds left Today
  1033.          Number of Seconds left this Session
  1034.          Amount of Fuel Left
  1035.          Number of Times Ship Has Played Today
  1036.          Seconds Sensors are Damaged for
  1037.          Federation Hostility State    (0 if not Hostile)
  1038.          Ship's Computer Damage Status (0 if not Damaged)
  1039.          Ship's Space Madness Level
  1040.          SI
  1041.  
  1042. ----------------------------------------------------------------------------
  1043. ST (SHIP's Team Name)
  1044.  
  1045. Returns: ST
  1046.          Team Name Ship is a Member of. 'None' if not a member of a team.
  1047.          ST
  1048.  
  1049. ----------------------------------------------------------------------------
  1050. SU (SHIP's Use Device Screen)
  1051.  
  1052. Returns: SU
  1053.          The Use Display Screen.
  1054.          SU
  1055.  
  1056. ----------------------------------------------------------------------------
  1057. VR (Get Config Variable Value)
  1058.  
  1059.  
  1060. Send   : <config variable name>
  1061. Returns: Value of Config Variable
  1062.          'Time Out' if more than 2 secs between characters of variable label
  1063.          'Label Too Long' if Label is more than 38 Characters.
  1064.          0 is returned on Invalid Label (This may also be a correct value).
  1065.  
  1066. Example: VR<VERSION>
  1067.          this would return '160' for version 1.60.
  1068.  
  1069. Example: VR<EXPORT>
  1070.          this would return '1' if the EXPORT feature is enabled
  1071.